#include "process.h"
#include<unistd.h>
#include<time.h>
#include<stdlib.h>

//函数指针类型
typedef void (*call_t)(char*,double,double);

double total=1024.0;
double speed[] = {20.0,0.5,0.3,0.2,0.01,0.001};//设置一个网速清单

//回调函数
void download(int total,call_t cb)
{
    srand(time(NULL));
    double current=0.0;
    while(current<=total)
    {
        cb("下载中",total,current);//进行回调
        if(current>=total)
        {
            break;
        }
        //下载代码
        int random = rand()%6;
        usleep(10000);
        current += speed[random];
        if(current>=total)
        {
            current = total;
        }
    }
}

int main()
{
   download(400,FlushProcess);
   download(1024.0,FlushProcess);
   download(512.0,FlushProcess);
   download(128.0,FlushProcess);
   download(64.0,FlushProcess);
    //process();
    return 0;
}
